package com.jtny.nytb.config.varible.dto;

import com.jtny.component.annotation.QueryParamField;
import com.jtny.component.entity.PageParam;
import com.jtny.component.enums.FieldMatchingTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * 全局配置管理分页查询参数DTO对象
 *
 * @author 智慧能源中心 - 伍天宇
 * @package com.jtny.nytb.config.variable.dto
 * @fileName ConfigGlobalManagementPageQueryParamDTO.java
 * @createTime 2023年09月05日 13:05
 * @Copyright© 2023 jtny
 * 江投能源技术研究院 版权所有
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel("全局配置管理分页查询参数DTO对象")
@Data
public class ConfigGlobalPageQueryParamDTO extends PageParam implements Serializable {

    /**
     * 变量编码
     */
    @ApiModelProperty("变量编码查询条件，精确查询")
    @QueryParamField(columnName = "code", matchingType = FieldMatchingTypeEnum.EQ)
    private String code;

//    /**
//     * 变量标识
//     */
//    @ApiModelProperty("变量标识查询条件，模糊查询")
//    @QueryParamField(columnName = "sign", matchingType = FieldMatchingTypeEnum.LIKE)
//    private String signLike;

    /**
     * 变量名称
     */
    @ApiModelProperty("变量名称查询条件，模糊查询")
    @QueryParamField(columnName = "name", matchingType = FieldMatchingTypeEnum.LIKE)
    private String nameLike;

    /**
     * 变量分类：1-平台变量，2-企业变量
     */
    @ApiModelProperty("变量分类查询条件，精确查询")
    @QueryParamField(columnName = "classify", matchingType = FieldMatchingTypeEnum.EQ)
    private Integer classify;

    /**
     * 数据类型：1-普通类型，2-数字类型，3-开关，4-数据字典
     */
    @ApiModelProperty("数据类型查询条件，精确查询")
    @QueryParamField(columnName = "data_type", matchingType = FieldMatchingTypeEnum.EQ)
    private Integer dataType;

    /**
     * 生效开始时间
     */
    @ApiModelProperty("生效开始时间查询条件，大于等于范围查询")
    @QueryParamField(columnName = "effective_start_time", matchingType = FieldMatchingTypeEnum.GE)
    private Long effectiveStartTimeGe;

    /**
     * 生效开始时间
     */
    @ApiModelProperty("生效开始时间查询条件，小于等于范围查询")
    @QueryParamField(columnName = "effective_start_time", matchingType = FieldMatchingTypeEnum.LE)
    private Long effectiveStartTimeLe;

    /**
     * 生效截至时间
     */
    @ApiModelProperty("生效截至时间")
    @QueryParamField(columnName = "effective_end_time", matchingType = FieldMatchingTypeEnum.GE)
    private Long effectiveEndTimeGe;

    /**
     * 生效截至时间
     */
    @ApiModelProperty("生效截至时间")
    @QueryParamField(columnName = "effective_end_time", matchingType = FieldMatchingTypeEnum.GE)
    private Long effectiveEndTimeLe;

    @ApiModelProperty("id列表")
    @QueryParamField(columnName = "id", matchingType = FieldMatchingTypeEnum.IN)
    private List<Long> idList;

}
